// src/api.service.js
import axios from 'axios';
import { ElMessage } from 'element-plus'

const apiClient = axios.create({
    baseURL: 'http://localhost:5226/api/', // 替换为你的API基础URL
    timeout: 10000,
    headers: { 'X-Custom-Header': 'foobar' } // 可以添加自定义请求头
});

apiClient.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 例如，添加认证令牌
    // config.headers.Authorization = 'Bearer ' + localStorage.getItem('token');
    return config;
}, function (error) {
    // 对请求错误做些什么
    
    return Promise.reject(error);
});

apiClient.interceptors.response.use(function (response) {
    // 对响应数据进行处理
    
    // 例如，根据响应状态码进行不同的处理
    if (response.status === 200) {
        if (response.data.Code == 200) {
            return response;
        }
        ElMessage.error(response.data.Message)
    } else {
        ElMessage.error(response.data.Message)
        // 可以根据需要处理不同的 HTTP 状态码
        return response;
    }
}, function (error) {
    
    ElMessage.error(error.message)
    // // 对响应错误做些什么
    // if (error.response) {
    //     // 请求已发出，服务器已做响应
    //     
    //     
    //     

    //     // 根据状态码进行特定处理
    //     switch (error.response.status) {
    //         case 401:
    //             // 未授权，跳转到登录页面
    //             break;
    //         case 403:
    //             // 拒绝访问，处理拒绝访问的错误
    //             break;
    //         case 404:
    //             // 未找到资源，处理404错误
    //             break;
    //         default:
    //             // 其他错误，可以统一处理
    //             break;
    //     }
    // } else if (error.request) {
    //     // 请求已发出，但没有收到响应
    //     
    // } else {
    //     // 请求设置阶段出现问题
    //     
    // }

    // 根据需要决定是否返回错误对象
    return Promise.reject(error);
});


const get = (url) => apiClient.get(url).then(response => response.data);
const post = (url, data) => apiClient.post(url, data).then(response => response.data);
// 可以继续添加其他HTTP方法，如put, delete等

export default {
    get,
    post,
    // ...其他方法
};